Skip to content

[C#] GenHTTP: Add experimental entry for version 11#740

Draft
Kaliumhexacyanoferrat wants to merge 3 commits into
MDA2AV:mainfrom
Kaliumhexacyanoferrat:genhttp-11
Draft

[C#] GenHTTP: Add experimental entry for version 11#740
Kaliumhexacyanoferrat wants to merge 3 commits into
MDA2AV:mainfrom
Kaliumhexacyanoferrat:genhttp-11

Conversation

@Kaliumhexacyanoferrat
Copy link
Copy Markdown
Collaborator

Description


PR Commands — comment on this PR to trigger (requires collaborator approval):

Command Description
/benchmark -f <framework> Run all benchmark tests
/benchmark -f <framework> -t <test> Run a specific test
/benchmark -f <framework> --save Run and save results (updates leaderboard on merge)

Always specify -f <framework>. Results are automatically compared against the current leaderboard.


Run benchmarks locally

You can validate and benchmark your framework locally with the lite script — no CPU pinning, fixed connection counts, all load generators run in Docker.

./scripts/validate.sh <framework>
./scripts/benchmark-lite.sh <framework> baseline
./scripts/benchmark-lite.sh --load-threads 4 <framework>

Requirements: Docker Engine on Linux. Load generators (gcannon, h2load, h2load-h3, wrk, ghz) are built as self-contained Docker images on first run.

@Kaliumhexacyanoferrat
Copy link
Copy Markdown
Collaborator Author

/benchmark -f genhttp-11

@github-actions
Copy link
Copy Markdown
Contributor

👋 /benchmark request received. A collaborator will review and approve the run.

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: genhttp-11 | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
pipelined 512 7,664,612 4934.1% 200MiB NEW NEW
pipelined 4096 10,160,635 6196.4% 352MiB NEW NEW
async-db 1024 190,512 3422.5% 341MiB NEW NEW
Full log
=== Best: 7664612 req/s (CPU: 4934.1%, Mem: 200MiB) ===
[info] saved results/pipelined/512/genhttp-11.json
httparena-bench-genhttp-11
httparena-bench-genhttp-11

==============================================
=== genhttp-11 / pipelined / 4096c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/pipeline
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   7.57ms    111us    384us   206.90ms    1.94s

  34173415 requests in 5.00s, 34126906 responses
  Throughput: 6.82M req/s
  Bandwidth:  839.57MB/s
  Status codes: 2xx=34126906, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 34126906 / 34126906 responses (100.0%)
[info] CPU 6272.5% | Mem 277MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/pipeline
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.78ms     96us    158us   66.70ms   727.50ms

  50836576 requests in 5.00s, 50803178 responses
  Throughput: 10.16M req/s
  Bandwidth:  1.22GB/s
  Status codes: 2xx=50803178, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 50803001 / 50803178 responses (100.0%)
[info] CPU 6196.4% | Mem 352MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/pipeline
  Threads:   64
  Conns:     4096 (64/thread)
  Pipeline:  16
  Req/conn:  unlimited (keep-alive)
  Expected:  200
  Duration:  5s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.79ms     97us    165us   157.90ms   696.80ms

  50399873 requests in 5.00s, 50369124 responses
  Throughput: 10.07M req/s
  Bandwidth:  1.21GB/s
  Status codes: 2xx=50369124, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 50363902 / 50369124 responses (100.0%)
[info] CPU 6276.3% | Mem 405MiB

=== Best: 10160635 req/s (CPU: 6196.4%, Mem: 352MiB) ===
[info] saved results/pipelined/4096/genhttp-11.json
httparena-bench-genhttp-11
httparena-bench-genhttp-11
[info] skip: genhttp-11 does not subscribe to limited-conn
[info] skip: genhttp-11 does not subscribe to json
[info] skip: genhttp-11 does not subscribe to json-comp
[info] skip: genhttp-11 does not subscribe to json-tls
[info] skip: genhttp-11 does not subscribe to upload
[info] skip: genhttp-11 does not subscribe to api-4
[info] skip: genhttp-11 does not subscribe to api-16
[info] skip: genhttp-11 does not subscribe to static

==============================================
=== genhttp-11 / async-db / 1024c (tool=gcannon) ===
==============================================
[info] waiting for server...
[info] server ready

[run 1/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   8.29ms   5.83ms   15.20ms   28.80ms   63.60ms

  1187085 requests in 10.00s, 1187086 responses
  Throughput: 118.68K req/s
  Bandwidth:  459.90MB/s
  Status codes: 2xx=1187086, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1187086 / 1187086 responses (100.0%)
  Reconnects: 47000
  Per-template: 236787,237405,238018,237697,237179
  Per-template-ok: 236787,237405,238018,237697,237179
[info] CPU 4593.9% | Mem 338MiB

[run 2/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.64ms   4.11ms   7.89ms   11.50ms   17.70ms

  1897552 requests in 10.00s, 1897556 responses
  Throughput: 189.72K req/s
  Bandwidth:  735.01MB/s
  Status codes: 2xx=1897556, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1897553 / 1897556 responses (100.0%)
  Reconnects: 75808
  Per-template: 378423,379689,380683,380126,378632
  Per-template-ok: 378423,379689,380683,380126,378632
[info] CPU 3382.8% | Mem 343MiB

[run 3/3]
gcannon v0.5.3
  Target:    localhost:8080/
  Threads:   64
  Conns:     1024 (16/thread)
  Pipeline:  1
  Req/conn:  25
  Templates: 5
  Expected:  200
  Duration:  10s


  Thread Stats   Avg      p50      p90      p99    p99.9
    Latency   4.56ms   4.05ms   7.71ms   11.20ms   18.20ms

  1905123 requests in 10.00s, 1905123 responses
  Throughput: 190.47K req/s
  Bandwidth:  738.10MB/s
  Status codes: 2xx=1905123, 3xx=0, 4xx=0, 5xx=0
  Latency samples: 1905119 / 1905123 responses (100.0%)
  Reconnects: 76215
  Per-template: 379801,380987,382074,382104,380153
  Per-template-ok: 379801,380987,382074,382104,380153
[info] CPU 3422.5% | Mem 341MiB

=== Best: 190512 req/s (CPU: 3422.5%, Mem: 341MiB) ===
[info] input BW: 12.72MB/s (avg template: 70 bytes)
[info] saved results/async-db/1024/genhttp-11.json
httparena-bench-genhttp-11
httparena-bench-genhttp-11
[info] skip: genhttp-11 does not subscribe to crud
[info] skip: genhttp-11 does not subscribe to fortunes
[info] skip: genhttp-11 does not subscribe to baseline-h2
[info] skip: genhttp-11 does not subscribe to static-h2
[info] skip: genhttp-11 does not subscribe to baseline-h2c
[info] skip: genhttp-11 does not subscribe to json-h2c
[info] skip: genhttp-11 does not subscribe to baseline-h3
[info] skip: genhttp-11 does not subscribe to static-h3
[info] skip: genhttp-11 does not subscribe to gateway-64
[info] skip: genhttp-11 does not subscribe to gateway-h3
[info] skip: genhttp-11 does not subscribe to production-stack
[info] skip: genhttp-11 does not subscribe to unary-grpc
[info] skip: genhttp-11 does not subscribe to unary-grpc-tls
[info] skip: genhttp-11 does not subscribe to stream-grpc
[info] skip: genhttp-11 does not subscribe to stream-grpc-tls
[info] skip: genhttp-11 does not subscribe to echo-ws
[info] skip: genhttp-11 does not subscribe to echo-ws-pipeline
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/async-db-1024.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-4096.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/pipelined-512.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536
[info] restoring CPU governor → powersave

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant